﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using AtencionMedicaWS.Dominio;
using NHibernate;
using NHibernate.Criterion;
using System.Data.SqlClient;


namespace AtencionMedicaWS.Persistencia
{
    public class RecetaDAO
    {
        AtencionMedicaDAO atencionDAO = new AtencionMedicaDAO();

        public ICollection<Receta> ListarXCita(Int32 numeroCita)
        {
            string _Sentencia = @"
                SELECT r.CodigoReceta, r.CodigoAtencion, r.Medicamento, r.Indicaciones 
                FROM Receta r, AtencionMedica a
                WHERE a.NumeroCita=@numeroCita
                  AND r.CodigoAtencion = a.CodigoAtencion";
            ICollection<Receta> recetasEncontradas = new List<Receta>();
            Receta recetaEncontrada = null;
            using (SqlConnection _Conexion = new SqlConnection(ConexionUtil.ObtenerCadena()))
            {
                _Conexion.Open();
                using (SqlCommand _Comando = new SqlCommand())
                {
                    _Comando.Parameters.Add(new SqlParameter("@numeroCita", numeroCita));                    
                    _Comando.CommandText = _Sentencia;
                    _Comando.Connection = _Conexion;
                    using (SqlDataReader _Resultado = _Comando.ExecuteReader())
                    {
                        while (_Resultado.Read())
                        {
                            recetaEncontrada = new Receta();
                            recetaEncontrada.Codigo = (int)_Resultado["CodigoReceta"];
                            recetaEncontrada.Atencion = atencionDAO.Obtener((int)_Resultado["CodigoAtencion"]);
                            recetaEncontrada.Medicamento = (string)_Resultado["Medicamento"];
                            recetaEncontrada.Indicaciones = (string)_Resultado["Indicaciones"];
                            recetasEncontradas.Add(recetaEncontrada);
                        }
                    }
                }
            }
            return recetasEncontradas;
        }
    }
}